import { apis } from '@/modules/dynamic/api';

export const TABLECONFIG = {
  page: 1,
  pageSize: 30,
};
// 定义接口，明确 API 配置的结构
interface ApiConfig {
  apiFunc: (url: string, params: object) => Promise<any>;
  url: string;
}

// 定义带联合类型和索引签名的类型
interface ListApiType {
  [key: string]: Record<string, ApiConfig>;
}
// 定义全局配置对象类型
const LISTAPI: ListApiType = {
  HOME: {
    推荐应用: {
      apiFunc: apis.recoAppApi,
      url: '/dev-api/api/ManagerAppStore/managerAppList',
    },
    资源下载: {
      apiFunc: apis.resourcesDownApi,
      url: '/dev-api/api/ManagerResource/list',
    },
    营销图库: {
      apiFunc: apis.markeListApi,
      url: '/dev-api/api/MarketingGallery/list',
    },
    高招直播: {
      apiFunc: apis.liveListApi,
      url: '/dev-api/api/ManagerLive/list',
    },
  },
  HOMESYSTEMDRAWER: {
    // 系统更新
    1: {
      apiFunc: apis.getSystemListApi,
      url: '/dev-api/api/index/systermUpdateList',
    },
    2: {
      apiFunc: apis.getWorkListApi,
      url: '/dev-api/api/WorkOrder/list',
    },
    3: {
      apiFunc: apis.getVersionUpdateListApi,
      url: '/dev-api/api/index/systermUpdateList',
    },
  },
};
// 获取 API 配置
export const getApiConfig = (pageKey: string, tabKey: string) => {
  const pageConfig = LISTAPI[pageKey];
  if (!pageConfig) {
    throw new Error(`未找到页面标识为 ${pageKey} 的配置`);
  }
  const tabConfig = pageConfig[tabKey];
  if (!tabConfig) {
    throw new Error(`未找到页面 ${pageKey} 下选项卡 ${tabKey} 的配置`);
  }
  return tabConfig;
};
